package com.practice.design.elevator;

import java.util.Observable;
import java.util.Observer;
import java.util.Queue;

public class ElevatorSystem implements Observer {
	private static ElevatorSystem	instance;
	
	// N elevators
	private Elevator[]				elevatorPool;
	
	// M floors, N elevators, each one has a control panel.
	private FloorControl[][]		floorControls;
	
	// FIFO
	private Queue<Request>			requestQueue;
	
	public synchronized static ElevatorSystem getInstance() {
		if (instance == null) {
			instance = new ElevatorSystem();
		}
		return instance;
	}
	
	public void request(int floor, Direction direction) {
	}
	
	public void update(Observable elevator, Object state) {
	}
	
	private class Request {
		int 		floor;
		Direction	direction;
		public Request(int floor, Direction direction) {
			this.floor = floor;
			this.direction = direction;
		}
	}
}
